package controller;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;

import model.Usuario;
import database.UsuarioDAO;

public class LoginController {
	
	private static final String PARAM_SENHA = "senha";
	private static final String PARAM_LOGIN = "login";
	public static final String ATTR_USUARIO_LOGADO = "usuarioLogado";

	public static String execute(HttpServletRequest request, String acao){
		if(acao.equals(Acao.LOGIN)) return login(request);
		else if(acao.equals(Acao.SAIR)) return sair(request);
		
		return Forward.INDEX;
	}

	private static String sair(HttpServletRequest request) {
		request.getSession().removeAttribute(ATTR_USUARIO_LOGADO);
		request.getSession().invalidate();
		return Forward.INDEX;
	}

	private static String login(HttpServletRequest request) {
		String login = request.getParameter(PARAM_LOGIN);
		String senha = request.getParameter(PARAM_SENHA);
		
		ArrayList<Usuario> result = new UsuarioDAO().getByStringField("login", login);

		if(result.size() > 0 && result.get(0).validarSenha(senha))
			request.getSession().setAttribute(ATTR_USUARIO_LOGADO, result.get(0));
		else
			request.setAttribute("erro", Erro.USUARIO_SENHA_INVALIDOS);
		
		return Forward.INDEX;
	}
}
